package stockscreener.persistencia;

import java.util.List;

import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import stockscreener.negocio.Empresa;
import stockscreener.util.StockScreenerApplicationContext;

public class EmpresaDAO extends HibernateDaoSupport {

	public void salva(Empresa empresa) {

		HibernateTemplate ht = getHibernateTemplate();
		ht.saveOrUpdate(empresa);
	}

	public void salva(List<Empresa> listaEmpresas) {

		HibernateTemplate ht = getHibernateTemplate();

		for (Empresa empresa : listaEmpresas) {
			ht.save(empresa);
		}
	}

	public List<Empresa> obtemTodos() {
		HibernateTemplate ht = getHibernateTemplate();
		return ht.find("from Empresa");
	}
	
	public List<Empresa> obtemPorSiglaDaAcao(String sigla) {
		HibernateTemplate ht = getHibernateTemplate();
		return ht.find("select distinct empresa from Empresa empresa left join empresa.acoes acao where acao.sigla = '" + sigla + "'");
	}

	public List<Empresa> obtemPorCodigoCVM(Long codigoCVM) {
		HibernateTemplate ht = getHibernateTemplate();
		return ht.find("from Empresa empresa where empresa.codigoCVM = " + codigoCVM);
	}

	public static EmpresaDAO get() {
		return (EmpresaDAO) StockScreenerApplicationContext
				.getBean(EmpresaDAO.class);
	}
}
